Ext.define('CA.App', {
    extend: 'Ext.ux.desktop.App',

    requires: [
        'Ext.ux.desktop.ShortcutModel'
    ],

    getModules : function(){
        var module = function(module){
            return Ext.create('CA.' + module + '.Module');
        };

        return [
            module('catalog'),
            module('dictionary')
        ];
    },

    getDesktopConfig: function () {
        var me = this,
            ret = me.callParent();

        return Ext.apply(ret, {
            contextMenuItems: [
            ],

            shortcuts: Ext.create('Ext.data.Store', {
                model: 'Ext.ux.desktop.ShortcutModel',
                data: [
                    { name: 'Каталог недвижимости', iconCls: 'c-icon-64-catalog', module: 'module-catalog' },
                    { name: 'Список справочников', iconCls: 'c-icon-64-catalog', module: 'module-dictionary' },
                    { name: 'Пользователи системы', iconCls: 'c-icon-64-users', module: 'module-catalog' },
                    { name: 'Настройки приложения', iconCls: 'c-icon-64-settings', module: 'module-catalog' }
                ]
            })
        });
    },

    getStartConfig : function() {
        var me = this, ret = me.callParent();

        return Ext.apply(ret, {
            title: 'Алексей ивойлов',
            iconCls: 'c-icon-user',
            height: 300,
            toolConfig: {
                width: 100,
                items: [
                    {
                        text:'Настройки',
                        iconCls:'c-icon-settings',
                        handler: me.onSettings,
                        scope: me
                    },
                    '-',
                    {
                        text:'Выход',
                        iconCls:'logout',
                        handler: me.onLogout,
                        scope: me
                    }
                ]
            }
        });
    },

    getTaskbarConfig: function () {
        var ret = this.callParent();

        return Ext.apply(ret, {
            startBtnText: 'Пуск',
            quickStart: [
                { name: 'Accordion Window', iconCls: 'accordion', module: 'acc-win' },
                { name: 'Grid Window', iconCls: 'icon-grid', module: 'grid-win' }
            ],
            trayItems: [
                { xtype: 'trayclock', flex: 1 }
            ]
        });
    },

    onLogout: function () {
        Ext.Msg.confirm('Выход из системы', 'Вы уверены что хотите выйти?');
    },

    onSettings: function () {
        var dlg = new MyDesktop.Settings({
            desktop: this.desktop
        });

        dlg.show();
    }
});

